Check out my COVID Analysis
This is the approach I used. I got the data from this source: ECDC
Import Data
This is where we import data.
#these libraries need to be loaded
library(utils)
#read the Dataset sheet into “R”. The dataset will be called "data".
data <- read.csv("https://opendata.ecdc.europa.eu/covid19/nationalcasedeath_eueea_daily_ei/csv", na.strings = "", fileEncoding = "UTF-8-BOM")
Schedule R Scripts
library(taskscheduleR)
taskscheduler_create(taskname = "test_run", rscript = "C:/Users/jzqma/Documents/GithubRepos/Basic-COVID19-ETL-Pipeline-R/covid_19-notebook.Rmd",
schedule = "ONCE", starttime = format(Sys.time() + 25, "%H:%M"))
[1] "SUCCESS: The scheduled task \"test_run\" has successfully been created."
#taskcheduler_stop("test_run")
#taskscheduler_delete("test_run")
Show Data Table
library(dplyr)
Attaching package: 㤼㸱dplyr㤼㸲
The following objects are masked from 㤼㸱package:stats㤼㸲:
filter, lag
The following objects are masked from 㤼㸱package:base㤼㸲:
intersect, setdiff, setequal, union
library(DT)
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
edf <- data %>% group_by(countriesAndTerritories) %>%
mutate(deathRate = sum(deaths) / sum(cases))
datatable(edf, extensions = 'Buttons', options = list(
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
))
NA
NA
NA
Graph 1
Graph A
library(ggplot2)
edf %>% filter(deaths > 100) %>%
group_by(countriesAndTerritories) %>%
summarise(Deaths_Total = sum(deaths)) %>%
ggplot(aes(x = countriesAndTerritories)) +
geom_point(aes(y = Deaths_Total)) +
coord_flip()

Graph B
edf %>% filter(deaths > 100) %>%
group_by(countriesAndTerritories) %>%
summarise(Cases_Total = sum(cases)) %>%
ggplot(aes(x = countriesAndTerritories)) +
geom_point(aes(y = Cases_Total)) +
coord_flip()

Input rmarkdown::render('covid_19-notebook.Rmd') in console to view HTML RMD
LS0tDQp0aXRsZTogIkNPVklEIEFuYWx5c2lzIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyBDaGVjayBvdXQgbXkgQ09WSUQgQW5hbHlzaXMNCg0KVGhpcyBpcyB0aGUgYXBwcm9hY2ggSSB1c2VkLiBJIGdvdCB0aGUgZGF0YSBmcm9tIHRoaXMgc291cmNlOiBbRUNEQ10oaHR0cHM6Ly93d3cuZWNkYy5ldXJvcGEuZXUvZW4vcHVibGljYXRpb25zLWRhdGEvZGF0YS1kYWlseS1uZXctY2FzZXMtY292aWQtMTktZXVlZWEtY291bnRyeSkNCg0KIyBJbXBvcnQgRGF0YQ0KDQpUaGlzIGlzIHdoZXJlIHdlIGltcG9ydCBkYXRhLiANCg0KYGBge3J9DQojdGhlc2UgbGlicmFyaWVzIG5lZWQgdG8gYmUgbG9hZGVkDQpsaWJyYXJ5KHV0aWxzKQ0KDQojcmVhZCB0aGUgRGF0YXNldCBzaGVldCBpbnRvIOKAnFLigJ0uIFRoZSBkYXRhc2V0IHdpbGwgYmUgY2FsbGVkICJkYXRhIi4NCmRhdGEgPC0gcmVhZC5jc3YoImh0dHBzOi8vb3BlbmRhdGEuZWNkYy5ldXJvcGEuZXUvY292aWQxOS9uYXRpb25hbGNhc2VkZWF0aF9ldWVlYV9kYWlseV9laS9jc3YiLCBuYS5zdHJpbmdzID0gIiIsIGZpbGVFbmNvZGluZyA9ICJVVEYtOC1CT00iKQ0KYGBgDQoNCiMgU2NoZWR1bGUgUiBTY3JpcHRzIA0KDQpgYGB7cn0NCmxpYnJhcnkodGFza3NjaGVkdWxlUikNCg0KdGFza3NjaGVkdWxlcl9jcmVhdGUodGFza25hbWUgPSAidGVzdF9ydW4iLCByc2NyaXB0ID0gIkM6L1VzZXJzL2p6cW1hL0RvY3VtZW50cy9HaXRodWJSZXBvcy9CYXNpYy1DT1ZJRDE5LUVUTC1QaXBlbGluZS1SL2NvdmlkXzE5LW5vdGVib29rLlJtZCIsIA0KICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGUgPSAiT05DRSIsIHN0YXJ0dGltZSA9IGZvcm1hdChTeXMudGltZSgpICsgMjUsICIlSDolTSIpKQ0KYGBgDQpgYGB7cn0NCiN0YXNrY2hlZHVsZXJfc3RvcCgidGVzdF9ydW4iKQ0KI3Rhc2tzY2hlZHVsZXJfZGVsZXRlKCJ0ZXN0X3J1biIpDQpgYGANCg0KDQoNCiMgU2hvdyBEYXRhIFRhYmxlDQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoRFQpDQoNCmVkZiA8LSBkYXRhICU+JSBncm91cF9ieShjb3VudHJpZXNBbmRUZXJyaXRvcmllcykgJT4lIA0KICBtdXRhdGUoZGVhdGhSYXRlID0gc3VtKGRlYXRocykgLyBzdW0oY2FzZXMpKQ0KDQpkYXRhdGFibGUoZWRmLCBleHRlbnNpb25zID0gJ0J1dHRvbnMnLCBvcHRpb25zID0gbGlzdCgNCiAgZG9tID0gJ0JmcnRpcCcsDQogIGJ1dHRvbnMgPSBjKCdjb3B5JywgJ2NzdicsICdleGNlbCcsICdwZGYnLCAncHJpbnQnKQ0KKSkNCg0KDQoNCmBgYA0KDQojIEdyYXBoIDEgey50YWJzZXR9DQoNCiMjIEdyYXBoIEEgDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCg0KZWRmICU+JSBmaWx0ZXIoZGVhdGhzID4gMTAwKSAlPiUgDQogIGdyb3VwX2J5KGNvdW50cmllc0FuZFRlcnJpdG9yaWVzKSAlPiUgDQogIHN1bW1hcmlzZShEZWF0aHNfVG90YWwgPSBzdW0oZGVhdGhzKSkgJT4lIA0KICBnZ3Bsb3QoYWVzKHggPSBjb3VudHJpZXNBbmRUZXJyaXRvcmllcykpICsgDQogIGdlb21fcG9pbnQoYWVzKHkgPSBEZWF0aHNfVG90YWwpKSArDQogIGNvb3JkX2ZsaXAoKQ0KYGBgDQoNCg0KIyMgR3JhcGggQg0KYGBge3J9DQplZGYgJT4lIGZpbHRlcihkZWF0aHMgPiAxMDApICU+JSANCiAgZ3JvdXBfYnkoY291bnRyaWVzQW5kVGVycml0b3JpZXMpICU+JSANCiAgc3VtbWFyaXNlKENhc2VzX1RvdGFsID0gc3VtKGNhc2VzKSkgJT4lIA0KICBnZ3Bsb3QoYWVzKHggPSBjb3VudHJpZXNBbmRUZXJyaXRvcmllcykpICsgDQogIGdlb21fcG9pbnQoYWVzKHkgPSBDYXNlc19Ub3RhbCkpICsNCiAgY29vcmRfZmxpcCgpDQpgYGANCklucHV0IGBybWFya2Rvd246OnJlbmRlcignY292aWRfMTktbm90ZWJvb2suUm1kJylgIGluIGNvbnNvbGUgdG8gdmlldyBIVE1MIFJNRCANCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=